package com.gadgets.cm05.init;

import com.gadgets.cm05.statistic.DistributeUtils;
import com.gadgets.framework.start.AbstractInitLoaderProcess;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;

/**
 * 功能说明：
 * 著作者：修峻青
 * 创建日期：2023-01-07
 */
@Component
public class DistributeInit extends AbstractInitLoaderProcess {

    private static final Logger logger = LoggerFactory.getLogger(DistributeInit.class);

    public DistributeInit() {
        super(Integer.MIN_VALUE+501);
    }

    /**
     * 初始化执行方法
     *
     * @param context Spring上下文
     */
    @Override
    public void initLoad(ApplicationContext context) {
        // 初始化 N(0,1) 的正态分布
        DistributeUtils.getStandardNormalDistrubute();
        logger.info("N(0,1)的正态分布初始化成功");
        // 自由度在15到29之间的 t 分布
        int i = 15;
        while (i<30){
            DistributeUtils.getTDistrubute(new BigDecimal(i));
            logger.info("t({})的正态分布初始化成功", i);
            i++;
        }
    }

}
